package com.itheima.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.itheima.utils.BaseContext;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/*
    定义一个元数据对象处理器类，用来告诉mybatisplus 要给什么属性赋什么值。
 */
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    /**
     * 在执行添加操作的时候，从这个方法里面就知道要给什么属性赋什么值
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("来调用insertFill 填充数据了ing~~");

        metaObject.setValue("createTime" , LocalDateTime.now());
        metaObject.setValue("updateTime", LocalDateTime.now());

        metaObject.setValue("createUser" , BaseContext.getCurrentId());
        metaObject.setValue("updateUser" , BaseContext.getCurrentId());
    }


    /**
     * 在执行更新操作的时候，从这个方法里面就知道要给什么属性赋什么值
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("来调用updateFill 填充数据了ing~~");
        metaObject.setValue("updateTime", LocalDateTime.now());

        metaObject.setValue("updateUser" , BaseContext.getCurrentId());
    }
}
